# src/core/web/web_reader.py
from typing import List
from src.core.interfaces import IDocumentReader
from .interfaces import IWebScrapingStrategy

class WebReader(IDocumentReader):
    """
    从网页URL读取内容，并使用特定策略提取问题，
    最终转换为标准的Markdown格式。
    """
    def __init__(self, strategy: IWebScrapingStrategy):
        self._strategy = strategy

    def read(self, url: str) -> str:
        """
        执行网页抓取并格式化为Markdown。
        """
        print(f"[{self._strategy.__class__.__name__}] 开始从URL抓取: {url}")
        questions = self._strategy.scrape_questions(url)
        
        if not questions:
            raise ValueError("未能从指定的URL中提取任何问题。")

        # 格式化为与WordReader完全一致的中间格式
        markdown_sections = [f"### 问题\n\n{text}" for text in questions]
        
        return "\n\n---\n\n".join(markdown_sections)